// 版权归Go作者所有。版权所有。
// 此源代码的使用受BSD样式
// 许可证的约束，该许可证可以在许可证文件中找到。

package bytealg

import "internal/cpu"

const MaxBruteForce = 64

func init() {
	// 注意：我们很幸运，这个标志在这一点上是可用的。
	// 运行时在处理auxv记录时设置HasVX，这在运行时依赖的包的init函数*运行之前发生。
	// TODO:如果internal/cpu能够自己解决这个
	// 标志，那就更好了。那么我们就不需要依赖
	// 早期启动初始化顺序的怪癖了。
	if cpu.S390X.HasVX {
		MaxLen = 64
	}
}

// 切换报告索引字节的失败次数在切换到索引之前，我们应该容忍
// 。
// n是到目前为止处理的字节数。
// 有关详细信息，请参见bytes.Index实现。
func Cutover(n int) int {
	// 8个字符中有1个错误，加上开始时的一些斜率。
	return (n + 16) / 8
}
